#include<iostream.h>
void menu();
int count=0;
class stack
			  {
			  private:
						 int element;
						 stack *next;
			  public:
						stack* enqueue(int);
						stack* dequeue();
						void stack_display(stack*);
						void search(int);
			  }*head,*trial;
stack* stack::enqueue(int key)
{
 stack *temp,*temp1;
 temp1=head;
 temp=new stack;
 trial=temp;
 count++;
 temp->element=key;
 temp->next=NULL;
 if(head==NULL)
	head=temp;
 else
	  {
	 while(head->next!=NULL)
			  head=head->next;
	head->next=temp;
	head=temp1;
	  }
 return head;
 }
 stack* stack::dequeue()
 {
  if(head==NULL)
	 cout<<"\nstack is empty\n";
  else
	{
	int max;
	stack *temp,*temp1,*d;
	temp=head;
	temp1=head;
	max=temp->element;
	while(temp->next!=NULL)
		  {
		  if(temp->element>max)
		  max=temp->element;
		  temp=temp->next;;
		  }
		if(temp->element>max)
		max=temp->element;
	if(temp1->element==max)
	{
	 head=head->next;
	 delete temp1;
	 }
	 else
			  {
		  while(temp1->next->element!=max)
		{
		  temp1=temp1->next;
		}
			d=temp1->next;
			temp1->next=d->next;
			delete d;
		 }
	 }
	return head;

 }
 void stack::search(int a)
 {
if(head==NULL)
  cout<<"\nstck is empty\n";
else
 {
 int g=0;
 stack *temp;
 temp=head;
while(temp->next!=NULL)
		 {
		  if(temp->element==a)
		  g++;
		 temp=temp->next;
		 }
	if(temp->element==a)
		g++;
 if(g==0)
	 {
	  cout<<"\n-------------------------------------------\n";
	  cout<<"the element  "<<a<<"  not found";
	  cout<<"\n-------------------------------------------\n";
	 }
 else
	 {
	 cout<<"\n-------------------------------------------\n";
	 cout<<"the element  "<<a<<"   found";
	 cout<<"\n-------------------------------------------\n";
	  }
  }
 }

 void stack::stack_display(stack* head)
 {
 stack* temp;
 temp=head;
 if(temp!=NULL)
	{
	 while(temp->next!=NULL)
			{
			cout<<temp->element<<"  ";
			temp=temp->next;
			}
			cout<<temp->element;
			cout<<endl;
	 }
 else
	  cout<<"The Stack Is Empty\n";
 }

									  int main()
{
int c,x,z;
stack object;
head=trial=NULL;
menu();
cin>>c;
while(c!=6)
		{
		switch(c)
				  {
				  case 1:
							cout<<"\n Enter Element :  ";
							cin>>x;
							head=object.enqueue(x);
							break;
				  case 2:
							head=object.dequeue();
							break;
				  case 3:
							cout<<"\n Enter Element :  ";
							cin>>z;
							object.search(z);
							break;
				  case 4:
							cout<<"\n-------------------------------------------\n";
							cout<<count;
							cout<<"\n-------------------------------------------\n";
							break;
				  case 5:
							cout<<"\n-------------------------------------------\n";
							object.stack_display(head);
							cout<<"-------------------------------------------\n";
							break;
				  default:
							cout<<"Pl Enter Your Choice.(1,2,3,4)--->";
				  }
		menu();
		cin>>c;
}
return 0;
}

 void menu()
 {
  cout<<"\n       main menu  \n";
  cout<<"____________________________";
  cout<<"\n1>Add Element to A Stack\n";
  cout<<"2>Del Element form Stack\n";
  cout<<"3>sersh\n";
  cout<<"4>counter\n";
  cout<<"5>Display Element on Stack\n";
  cout<<"6>Exit\n";
 }